package platzerworld.kegeln.gui.ergebnis;

import java.util.Calendar;
import java.util.GregorianCalendar;

import platzerworld.kegeln.R;
import platzerworld.kegeln.common.ConstantsIF;
import platzerworld.kegeln.common.logging.LOG;
import platzerworld.kegeln.common.style.StyleManager;
import platzerworld.kegeln.db.ergebnis.ErgebnisSpeicher;
import platzerworld.kegeln.gui.kegelauswahl.ErgebnisEinzelAnlegen;
import platzerworld.kegeln.vo.ergebnis.ErgebnisVO;
import platzerworld.kegeln.vo.spieler.SpielerVO;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.InputType;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;

/**
 * Anlegen eines Ergebnisses.
 * 
 * @author platzerg
 * 
 */
public class ErgebnisAnlegen extends Activity implements ConstantsIF {
	private static final long serialVersionUID = 2236811201737241410L;

	/** Kuerzel fuers Logging. */
	private static final String TAG = ErgebnisseAnzeigen.class.getSimpleName();
	
	private TextView titeltext;
	private int defaultColor;
	
	private Button mSpeichernButton;
	private Button mAbbruchButton;
	private Button mEinzelAnlegenButton;
	
	private EditText edtSpielZeit;
	private EditText edtGesamtergebnis;
	private EditText edtErgebnis501;
	private EditText edtErgebnis502;
	private EditText edtVolle251;
	private EditText edtVolle252;
	private EditText edtAbr251;
	private EditText edtAbr252;
	private EditText edtFehl251;
	private EditText edtFehl252;

	private ErgebnisSpeicher mErgebnisSpeicher;
	private ErgebnisVO mErgebnisVO;
	
	private SpielerVO aktuellerSpieler = null;
	
	private boolean isEditMode = false;
	
	private int mAnlageTyp = 0;
	
	public int mYear;
	public int mMonth;
	public int mDay;

	private boolean checkboxPreferenceErgebnisManuell;
	

	@Override
	protected void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		LOG.v(TAG, "onCreate(): entered...");
		setContentView(R.layout.ergebnis_anlegen);
		
		Bundle extras = getIntent().getExtras();
		if (extras == null) {
			return;
		}
		
		isEditMode =  extras.getBoolean(INTENT_EXTRA_EDIT_MODE);
		if(!isEditMode){
			mErgebnisVO = new ErgebnisVO();
		}else{
			mErgebnisVO = (ErgebnisVO) extras.getSerializable(INTENT_EXTRA_ERGEBNIS);
		}
		aktuellerSpieler = (SpielerVO) extras.getSerializable(INTENT_EXTRA_SPIELER);
		
		init();
	}
	
	@Override
	protected void onStart() {
		super.onStart();
	}
	
	@Override
	protected void onDestroy() {
		cleanDatabase();
		super.onDestroy();
	}
	
	@Override
	protected void onResume() {
		bindWidgets();
		
		super.onResume();
	}
	
	private void init(){
		initPreferences();
		initWidgets();
		initStyle();
		initListener();
		initContextMenu();
		initDatabase();
	}
	
	private void bindWidgets(){
		edtSpielZeit.setText(mErgebnisVO.spielZeit);
		edtGesamtergebnis.setText(String.valueOf(mErgebnisVO.gesamtergebnis));
		edtErgebnis501.setText(String.valueOf(mErgebnisVO.ergebnis501));
		edtErgebnis502.setText(String.valueOf(mErgebnisVO.ergebnis502));
		edtVolle251.setText(String.valueOf(mErgebnisVO.volle251));
		edtVolle252.setText(String.valueOf(mErgebnisVO.volle252));
		edtAbr251.setText(String.valueOf(mErgebnisVO.abraeumen251));
		edtAbr252.setText(String.valueOf(mErgebnisVO.abraeumen252));
		edtFehl251.setText(String.valueOf(mErgebnisVO.fehl251));
		edtFehl252.setText(String.valueOf(mErgebnisVO.fehl252));
		

		if(!isEditMode){
			titeltext.setText(getResources().getString(R.string.txt_ergebnis_neuanlegen_titel));
		}else{
			titeltext.setText(getResources().getString(R.string.txt_ergebnis_bearbeiten_titel));
		}
		
		
	}
	
	private void initStyle() {
		Typeface font = StyleManager.getInstance().init(this).getTypeface();
		titeltext.setTypeface(font);
		defaultColor = getResources().getColor(R.color.TITEL_COLOR);
	}
	
	private void initWidgets(){
		titeltext = (TextView) findViewById(R.id.txt_ergebnis_neuanlegen_titel);
		
		mSpeichernButton = (Button) findViewById(R.id.sf_ergebnis_neuanlagen_ok);
		mAbbruchButton = (Button) findViewById(R.id.sf_ergebnis_neuanlagen_abbruch);
		mEinzelAnlegenButton = (Button) findViewById(R.id.sf_ergebnis_neuanlagen_eingabe);
		
		edtSpielZeit = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_spielzeit);
		edtGesamtergebnis = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_gesamtergebnis);
		edtErgebnis501 = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_ergebnis_50_1);
		edtErgebnis502 = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_ergebnis_50_2);
		edtVolle251 = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_volle_50_1);
		edtVolle252 = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_volle_50_2);
		edtAbr251 = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_abraeumen_50_1);
		edtAbr252 = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_abraeumen_50_2);
		edtFehl251 = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_fehl_50_1);
		edtFehl252 = (EditText) findViewById(R.id.edt_ergebnis_neuanlegen_fehl_50_2);
		
		edtFehl251.setInputType(InputType.TYPE_CLASS_NUMBER);
		
		edtFehl251.setOnFocusChangeListener(new OnFocusChangeListener() {
			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				if(hasFocus){
					mEinzelAnlegenButton.setEnabled(false);
					refreshFehl1(v);
				}
			}
		});
		edtFehl252.setInputType(InputType.TYPE_CLASS_NUMBER);
		edtFehl252.setOnFocusChangeListener(new OnFocusChangeListener() {
			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				if(hasFocus){
					mEinzelAnlegenButton.setEnabled(false);
					refreshFehl2(v);
				}
			}
		});
		
		if(!checkboxPreferenceErgebnisManuell){
			edtGesamtergebnis.setInputType(InputType.TYPE_NULL);
			edtErgebnis501.setInputType(InputType.TYPE_NULL);
			edtErgebnis502.setInputType(InputType.TYPE_NULL);
			edtVolle251.setInputType(InputType.TYPE_NULL);
			edtVolle252.setInputType(InputType.TYPE_NULL);
			edtAbr251.setInputType(InputType.TYPE_NULL);
			edtAbr252.setInputType(InputType.TYPE_NULL);
			
			
			edtVolle251.setOnTouchListener(new OnTouchListener() {
				@Override
				public boolean onTouch(View v, MotionEvent event) {
					if(MotionEvent.ACTION_DOWN == event.getAction()){
						refreshVolle1(v);
					}
					return true;
				}
			});
			
			edtVolle252.setOnTouchListener(new OnTouchListener() {
				@Override
				public boolean onTouch(View v, MotionEvent event) {
					if(MotionEvent.ACTION_DOWN == event.getAction()){
						refreshVolle2(v);
					}
					return true;
				}
			});
			
			edtAbr251.setOnTouchListener(new OnTouchListener() {
				@Override
				public boolean onTouch(View v, MotionEvent event) {
					if(MotionEvent.ACTION_DOWN == event.getAction()){
						refreshAbr1(v);
					}
					return true;
				}
			});
			
			edtAbr252.setOnTouchListener(new OnTouchListener() {
				@Override
				public boolean onTouch(View v, MotionEvent event) {
					if(MotionEvent.ACTION_DOWN == event.getAction()){
						refreshAbr2(v);
					}
					return true;
				}
			});

		}else{
			mEinzelAnlegenButton.setEnabled(false);
			edtGesamtergebnis.setInputType(InputType.TYPE_CLASS_NUMBER);
			edtGesamtergebnis.setOnFocusChangeListener(new OnFocusChangeListener() {
				@Override
				public void onFocusChange(View v, boolean hasFocus) {
					if(hasFocus){
						v.setBackgroundColor(Color.rgb(255, 140, 0));
						edtSpielZeit.setBackgroundColor(defaultColor);
						edtErgebnis501.setBackgroundColor(defaultColor);
						edtErgebnis502.setBackgroundColor(defaultColor);
						edtVolle251.setBackgroundColor(defaultColor);
						edtVolle252.setBackgroundColor(defaultColor);
						edtAbr251.setBackgroundColor(defaultColor);
						edtAbr252.setBackgroundColor(defaultColor);
						edtFehl251.setBackgroundColor(defaultColor);
						edtFehl252.setBackgroundColor(defaultColor);
					}
				}
			});
			
			
			edtErgebnis501.setInputType(InputType.TYPE_CLASS_NUMBER);
			edtErgebnis501.setOnFocusChangeListener(new OnFocusChangeListener() {
				@Override
				public void onFocusChange(View v, boolean hasFocus) {
					if(hasFocus){
						v.setBackgroundColor(Color.rgb(255, 140, 0));
						edtGesamtergebnis.setBackgroundColor(defaultColor);
						edtSpielZeit.setBackgroundColor(defaultColor);
						edtErgebnis502.setBackgroundColor(defaultColor);
						edtVolle251.setBackgroundColor(defaultColor);
						edtVolle252.setBackgroundColor(defaultColor);
						edtAbr251.setBackgroundColor(defaultColor);
						edtAbr252.setBackgroundColor(defaultColor);
						edtFehl251.setBackgroundColor(defaultColor);
						edtFehl252.setBackgroundColor(defaultColor);
					}
				}
			});
			
			edtErgebnis502.setInputType(InputType.TYPE_CLASS_NUMBER);
			edtErgebnis502.setOnFocusChangeListener(new OnFocusChangeListener() {
				@Override
				public void onFocusChange(View v, boolean hasFocus) {
					if(hasFocus){
						v.setBackgroundColor(Color.rgb(255, 140, 0));
						edtGesamtergebnis.setBackgroundColor(defaultColor);
						edtSpielZeit.setBackgroundColor(defaultColor);
						edtErgebnis501.setBackgroundColor(defaultColor);
						edtVolle251.setBackgroundColor(defaultColor);
						edtVolle252.setBackgroundColor(defaultColor);
						edtAbr251.setBackgroundColor(defaultColor);
						edtAbr252.setBackgroundColor(defaultColor);
						edtFehl251.setBackgroundColor(defaultColor);
						edtFehl252.setBackgroundColor(defaultColor);
					}
				}
			});
			
			edtVolle251.setInputType(InputType.TYPE_CLASS_NUMBER);
			edtVolle251.setOnFocusChangeListener(new OnFocusChangeListener() {
				@Override
				public void onFocusChange(View v, boolean hasFocus) {
					if(hasFocus){
						refreshVolle1(v);
					}
				}
			});
			
			edtVolle252.setInputType(InputType.TYPE_CLASS_NUMBER);
			edtVolle252.setOnFocusChangeListener(new OnFocusChangeListener() {
				@Override
				public void onFocusChange(View v, boolean hasFocus) {
					if(hasFocus){
						refreshVolle2(v);
					}
				}
			});
			
			edtAbr251.setInputType(InputType.TYPE_CLASS_NUMBER);
			edtAbr251.setOnFocusChangeListener(new OnFocusChangeListener() {
				@Override
				public void onFocusChange(View v, boolean hasFocus) {
					if(hasFocus){
						refreshAbr1(v);
					}
				}
			});
			
			edtAbr252.setInputType(InputType.TYPE_CLASS_NUMBER);
			edtAbr252.setOnFocusChangeListener(new OnFocusChangeListener() {
				@Override
				public void onFocusChange(View v, boolean hasFocus) {
					if(hasFocus){
						refreshAbr2(v);
					}
				}
			});
		}
		
	}
	
	private void initPreferences(){
		SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
		checkboxPreferenceErgebnisManuell = prefs.getBoolean("CHECK_ERGEBNIS_MANUELL_EINTRAGEN_PREF", true);
	}
	
	private void initListener(){		
		mSpeichernButton.setOnClickListener(mVereinAnlegenOkListener);
		mAbbruchButton.setOnClickListener(mVereinAnlegenAbbruchListener);
		mEinzelAnlegenButton.setOnClickListener(mEinzelAnlegenListener);
		
		edtSpielZeit.setOnTouchListener(mSpielZeitListener);
		
	}
	
	private void initContextMenu(){
	}
	
	private void initDatabase(){
		final Calendar c = Calendar.getInstance();
	    mYear = c.get(Calendar.YEAR);
	    mMonth = c.get(Calendar.MONTH);
	    mDay = c.get(Calendar.DAY_OF_MONTH);
	}
	
	private void cleanDatabase(){
	}
	
	@Override
	protected Dialog onCreateDialog(int id) {
	   switch (id) {
	   case DATE_DIALOG_ID:
	      return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
	   }
	   return null;
	}

	private final OnClickListener mVereinAnlegenOkListener = new OnClickListener() {
		public void onClick(View v) {
			speichern();
		}
	};

	private final OnClickListener mVereinAnlegenAbbruchListener = new OnClickListener() {
		public void onClick(View v) {
			finish();
		}
	};
	
	private final OnClickListener mEinzelAnlegenListener = new OnClickListener() {
		public void onClick(View v) {
			anlegenEinzel();
		}
	};
	
	private final OnTouchListener mSpielZeitListener = new OnTouchListener() {
		
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			if(MotionEvent.ACTION_DOWN == event.getAction()){
				v.setBackgroundColor(Color.rgb(255, 140, 0));
				edtVolle251.setBackgroundColor(defaultColor);
				edtVolle252.setBackgroundColor(defaultColor);
				edtAbr251.setBackgroundColor(defaultColor);
				edtAbr252.setBackgroundColor(defaultColor);
				edtErgebnis501.setBackgroundColor(defaultColor);
				edtErgebnis502.setBackgroundColor(defaultColor);
				edtGesamtergebnis.setBackgroundColor(defaultColor);
				edtFehl251.setBackgroundColor(defaultColor);
				edtFehl252.setBackgroundColor(defaultColor);
				showDialog(DATE_DIALOG_ID);
			}
			
			return true;
		}
	};
	
	private void refreshVolle1(View v){
		v.setBackgroundColor(Color.rgb(255, 140, 0));
		mEinzelAnlegenButton.setEnabled(true && !checkboxPreferenceErgebnisManuell);
		mAnlageTyp = EINZEL_ANLEGEN_VOLL251;
		edtGesamtergebnis.setBackgroundColor(defaultColor);
		edtSpielZeit.setBackgroundColor(defaultColor);
		edtErgebnis501.setBackgroundColor(defaultColor);
		edtErgebnis502.setBackgroundColor(defaultColor);
		edtVolle252.setBackgroundColor(defaultColor);
		edtAbr251.setBackgroundColor(defaultColor);
		edtAbr252.setBackgroundColor(defaultColor);
		edtSpielZeit.setBackgroundColor(defaultColor);
		edtFehl251.setBackgroundColor(defaultColor);
		edtFehl252.setBackgroundColor(defaultColor);
	}
	
	private void refreshVolle2(View v){
		v.setBackgroundColor(Color.rgb(255, 140, 0));
		mEinzelAnlegenButton.setEnabled(true && !checkboxPreferenceErgebnisManuell);
		mAnlageTyp = EINZEL_ANLEGEN_VOLL252;
		edtGesamtergebnis.setBackgroundColor(defaultColor);
		edtSpielZeit.setBackgroundColor(defaultColor);
		edtErgebnis501.setBackgroundColor(defaultColor);
		edtErgebnis502.setBackgroundColor(defaultColor);
		edtVolle251.setBackgroundColor(defaultColor);
		edtAbr251.setBackgroundColor(defaultColor);
		edtAbr252.setBackgroundColor(defaultColor);
		edtFehl251.setBackgroundColor(defaultColor);
		edtFehl252.setBackgroundColor(defaultColor);
	}
	
	private void refreshAbr1(View v){
		v.setBackgroundColor(Color.rgb(255, 140, 0));
		mEinzelAnlegenButton.setEnabled(true && !checkboxPreferenceErgebnisManuell);
		mAnlageTyp = EINZEL_ANLEGEN_ABR251;
		edtGesamtergebnis.setBackgroundColor(defaultColor);
		edtSpielZeit.setBackgroundColor(defaultColor);
		edtErgebnis501.setBackgroundColor(defaultColor);
		edtErgebnis502.setBackgroundColor(defaultColor);
		edtVolle251.setBackgroundColor(defaultColor);
		edtVolle252.setBackgroundColor(defaultColor);
		edtAbr252.setBackgroundColor(defaultColor);
		edtFehl251.setBackgroundColor(defaultColor);
		edtFehl252.setBackgroundColor(defaultColor);
	}
	
	private void refreshAbr2(View v){
		v.setBackgroundColor(Color.rgb(255, 140, 0));
		mEinzelAnlegenButton.setEnabled(true && !checkboxPreferenceErgebnisManuell);
		mAnlageTyp = EINZEL_ANLEGEN_ABR252;
		edtGesamtergebnis.setBackgroundColor(defaultColor);
		edtSpielZeit.setBackgroundColor(defaultColor);
		edtErgebnis501.setBackgroundColor(defaultColor);
		edtErgebnis502.setBackgroundColor(defaultColor);
		edtVolle251.setBackgroundColor(defaultColor);
		edtVolle252.setBackgroundColor(defaultColor);
		edtAbr251.setBackgroundColor(defaultColor);
		edtFehl251.setBackgroundColor(defaultColor);
		edtFehl252.setBackgroundColor(defaultColor);
	}
	
	private void refreshFehl1(View v){
		v.setBackgroundColor(Color.rgb(255, 140, 0));
		edtGesamtergebnis.setBackgroundColor(defaultColor);
		edtSpielZeit.setBackgroundColor(defaultColor);
		edtErgebnis501.setBackgroundColor(defaultColor);
		edtErgebnis502.setBackgroundColor(defaultColor);
		edtVolle251.setBackgroundColor(defaultColor);
		edtVolle252.setBackgroundColor(defaultColor);
		edtAbr251.setBackgroundColor(defaultColor);
		edtAbr252.setBackgroundColor(defaultColor);
		edtFehl252.setBackgroundColor(defaultColor);
	}
	
	private void refreshFehl2(View v){
		v.setBackgroundColor(Color.rgb(255, 140, 0));
		edtGesamtergebnis.setBackgroundColor(defaultColor);
		edtSpielZeit.setBackgroundColor(defaultColor);
		edtErgebnis501.setBackgroundColor(defaultColor);
		edtErgebnis502.setBackgroundColor(defaultColor);
		edtVolle251.setBackgroundColor(defaultColor);
		edtVolle252.setBackgroundColor(defaultColor);
		edtAbr251.setBackgroundColor(defaultColor);
		edtAbr252.setBackgroundColor(defaultColor);
		edtFehl251.setBackgroundColor(defaultColor);
	}
	
	private void speichern() {
		if(validate()){
			mErgebnisSpeicher = new ErgebnisSpeicher(this);
			
			errechneGesamtErgebnis();
			mErgebnisVO.spielerId = aktuellerSpieler.id;
			mErgebnisVO.mannschaftId = aktuellerSpieler.mannschaftId;
			
			if(!isEditMode){
				mErgebnisVO.key = 0;
			}
			
			mErgebnisSpeicher.speichereErgebnis(mErgebnisVO);
			finish();
		}
	}

	@Override
	public void finish() {
		Intent data = new Intent();
		data.putExtra(INTENT_EXTRA_NEUES_ERGEBNIS, mErgebnisVO);
		setResult(RESULT_OK, data);
		super.finish();
	}
	
	private void anlegenEinzel() {
		final Intent intent = new Intent(this, ErgebnisEinzelAnlegen.class);
		intent.putExtra(INTENT_EXTRA_EINZEL_ANLEGEN, mAnlageTyp);
		startActivityForResult(intent, REQUEST_CODE_EINZEL_ANLEGEN_ZWISCHEN_ERGEBNIS);
	}
	
	private boolean validate(){
		if(edtGesamtergebnis.getText().length() < 1){
			edtGesamtergebnis.setText("0");
		}
		if(edtErgebnis501.getText().length() < 1){
			edtErgebnis501.setText("0");
		}
		if(edtErgebnis502.getText().length() < 1){
			edtErgebnis502.setText("0");
		}
		if(edtAbr251.getText().length() < 1){
			edtAbr251.setText("0");
		}
		if(edtAbr252.getText().length() < 1){
			edtAbr252.setText("0");
		}
		if(edtFehl251.getText().length() < 1){
			edtFehl251.setText("0");
		}
		if(edtFehl252.getText().length() < 1){
			edtFehl252.setText("0");
		}
		
		if(edtVolle251.getText().length() < 1){
			edtVolle251.setText("0");
		}
		if(edtVolle252.getText().length() < 1){
			edtVolle252.setText("0");
		}
		
		if(edtSpielZeit.getText().length() < 1){
			edtSpielZeit.setText(GregorianCalendar.getInstance().getTime().toGMTString());
		}
				
		if(edtGesamtergebnis.getText().length() > 0){
			return true;
		}
		return false;
	}
	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (resultCode == RESULT_OK && requestCode == REQUEST_CODE_EINZEL_ANLEGEN_ZWISCHEN_ERGEBNIS) {
			if (data.hasExtra(INTENT_EXTRA_WURF_ZWISCHEN_ERGEBNIS)) {
				String zwischenergebnis = String.valueOf( data.getExtras().getInt(INTENT_EXTRA_WURF_ZWISCHEN_ERGEBNIS));
				updateZwischenergebnis(zwischenergebnis);
			}
		}
		errechneGesamtErgebnis();
	}
	
	private void updateZwischenergebnis(String zwischenergebnis){
		switch (mAnlageTyp) {
		case EINZEL_ANLEGEN_VOLL251:
			edtVolle251.setText(zwischenergebnis);
			break;
		case EINZEL_ANLEGEN_VOLL252:
			edtVolle252.setText(zwischenergebnis);
			break;
		case EINZEL_ANLEGEN_ABR251:
			edtAbr251.setText(zwischenergebnis);
			break;
		case EINZEL_ANLEGEN_ABR252:
			edtAbr252.setText(zwischenergebnis);
			break;
		default:
			break;
		}
	}
	
	private void errechneGesamtErgebnis(){
		int gesamt = 0;
		validate();
		int volle1 = Integer.parseInt(edtVolle251.getText().toString());
		int volle2 = Integer.parseInt(edtVolle252.getText().toString());
		
		int abr1 = Integer.parseInt(edtAbr251.getText().toString());
		int abr2 = Integer.parseInt(edtAbr252.getText().toString());
		
		int fehl1 = Integer.parseInt(edtFehl251.getText().toString());
		int fehl2 = Integer.parseInt(edtFehl252.getText().toString());
		
		int erg1 = volle1 + abr1;
		int erg2 = volle2 + abr2;
		edtErgebnis501.setText(String.valueOf(erg1));
		edtErgebnis502.setText(String.valueOf(erg2));
	 
		int ergebnis501 = Integer.parseInt(edtErgebnis501.getText().toString());
		int ergebnis502 = Integer.parseInt(edtErgebnis502.getText().toString());
		gesamt = ergebnis501 + ergebnis502;
		
		mErgebnisVO.volle251 = volle1;
		mErgebnisVO.volle252 = volle2;
		mErgebnisVO.abraeumen251 = abr1;
		mErgebnisVO.abraeumen252 = abr2;
		mErgebnisVO.ergebnis501 = erg1;
		mErgebnisVO.ergebnis502 = erg2;
		mErgebnisVO.spielZeit = edtSpielZeit.getText().toString();
		mErgebnisVO.fehl251 = fehl1;
		mErgebnisVO.fehl252 = fehl2;
		mErgebnisVO.gesamtergebnis = gesamt;
		
		edtGesamtergebnis.setText(String.valueOf(gesamt));
	}
	
	private DatePickerDialog.OnDateSetListener mDateSetListener =
	    new DatePickerDialog.OnDateSetListener() {
	        public void onDateSet(DatePicker view, int year,  int monthOfYear, int dayOfMonth) {
	            mYear = year; mMonth = monthOfYear; mDay = dayOfMonth;
	            updateDisplay();
	        }
	};
	
    private void updateDisplay() {
	    edtSpielZeit.setText( new StringBuilder().append(mDay).append(".").append(mMonth + 1).append(".").append(mYear));
	}
}
